﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TandvardsstodApp.Rakningar
{
    public partial class RedigeraRakning : System.Web.UI.Page
    {
        /// <summary>
        /// Fyller kontroller med värden.
        /// Triggas när sidan laddas.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
            System.Data.DataSet dataSetKlinikNamn = client.GetDataKlinikNamn();
            System.Data.DataTable tableKlinikNamn = dataSetKlinikNamn.Tables[0];
            System.Data.DataSet dataSetBehKod = client.GetDataBehandlareLista();
            System.Data.DataTable tableBehKod = dataSetBehKod.Tables[0];

            try
            {


                for (int i = 0; i < tableKlinikNamn.Rows.Count; i++)
                {

                    DdlKlinik.Items.Add(tableKlinikNamn.Rows[i][2].ToString());


                }

                for (int i = 0; i < tableBehKod.Rows.Count; i++)
                {

                    DdlBehKod.Items.Add(tableBehKod.Rows[i][1].ToString());

                }

            }
            catch
            {
            }
        }

        /// <summary>
        /// Här gör jag en sökning på eventuell information som jag sedan för in på sin rätta plats som en output.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSokRakning_Click(object sender, EventArgs e)
        {
            ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();

            if (IsPostBack)
            {
                System.Data.DataSet dataSetValue = client.GetDataRäkningByPersonNrAndLöpNr(txtSokRakning.Text);
                System.Data.DataTable table = dataSetValue.Tables[0];


                try
                {
                    if (table.Rows[0][1].ToString() == txtSokRakning.Text)
                        lblResultatRakning.Text = "<b>Räkning finns</b>";
                    else if (table.Rows[0][2].ToString() == txtSokRakning.Text)
                        lblResultatRakning.Text = "<b>Räkning finns</b>";
                    else if (table.Rows[0][3].ToString() == txtSokRakning.Text)
                        lblResultatRakning.Text = "<b>Räkning finns</b>";
                    else if (table.Rows[0][18].ToString() == txtSokRakning.Text)
                        lblResultatRakning.Text = "<b>Räkning finns</b>";
                    else if (table.Rows[0][0].ToString() == txtSokRakning.Text)
                        lblResultatRakning.Text = "<b>Räkning finns</b>";

                    // Detta är tillståndshantering som sparar aktuellt id.
                    this.ViewState["ID"] = table.Rows[0][0];

                    txtPersonNr.Text = table.Rows[0][1].ToString();
                    txtPersonNr.ReadOnly = true;
                    txtFörNamn.Text = table.Rows[0][2].ToString();
                    txtEfterNamn.Text = table.Rows[0][3].ToString();
                    txtBruttoKostnad.Text = string.Format("{0:0000.00}", table.Rows[0][7]);
                    txtErlagdPatientAvgift.Text = string.Format("{0:0000.00}", table.Rows[0][8]);
                    txtnettoKrav.Text = string.Format("{0:0000.00}", table.Rows[0][9]);
                    txtAntalBesök.Text = table.Rows[0][10].ToString();
                    txtBetaldaBesök.Text = table.Rows[0][11].ToString();
                    txtFrikortsBesök.Text = table.Rows[0][12].ToString();
                    txtUteblivande.Text = table.Rows[0][13].ToString();
                    txtInkommandeDatum.Text = string.Format("{0:yyyy-MM-dd}", table.Rows[0][15]);
                    txtUtanordnadDatum.Text = string.Format("{0:yyyy-MM-dd}", table.Rows[0][16]);
                    txtLöpNr.Text = table.Rows[0][18].ToString();
                    txtJusteratKrav.Text = string.Format("{0:000.00}", table.Rows[0][19]);
                    txtFTVmånad.Text = string.Format("{0:yyyy-MM-dd}", table.Rows[0][27]);
                    txtVårdTOM.Text = table.Rows[0][28].ToString();
                    txtTypAvVård.Text = table.Rows[0][29].ToString();
                    txtKommentar.Text = table.Rows[0][20].ToString();

                    DdlBehKod.Text = table.Rows[0][4].ToString();
                    DdlKlinik.Text = table.Rows[0][17].ToString();
                    DdlGrupp.Text = table.Rows[0][26].ToString();

                    chkNodTandvard.Checked = bool.Parse(table.Rows[0][5].ToString());
                    chkTSLIES.Checked = bool.Parse(table.Rows[0][6].ToString());
                    chkFörhandsprövningGjord.Checked = bool.Parse(table.Rows[0][14].ToString());
                    chkMakulerad.Checked = bool.Parse(table.Rows[0][21].ToString());
                    chkGodkänd.Checked = bool.Parse(table.Rows[0][22].ToString());
                    chkTandvårdsIntyg.Checked = bool.Parse(table.Rows[0][23].ToString());
                    chkFHPFinns.Checked = bool.Parse(table.Rows[0][24].ToString());
                    chkPatientlista.Checked = bool.Parse(table.Rows[0][25].ToString());
                    chkSärskildÅtgärd.Checked = bool.Parse(table.Rows[0][30].ToString());


                }
                catch
                {
                    ScriptManager.RegisterStartupScript(btnSokRakning, btnSokRakning.GetType(), "alertscript", "alert(" + '"' + "Räkning finns inte!" + '"' + ")", true);

                }
            }
        }

        /// <summary>
        /// Här anropar jag update metoden för att skicka med alla nödvändiga parameterar 
        /// och på så vis uppdatera tabellen.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnSpara_Click(object sender, EventArgs e)
        {

            ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();


            try
            {
                client.UpdateRäkning(txtPersonNr.Text, txtFörNamn.Text, txtEfterNamn.Text, DdlBehKod.SelectedValue,
                chkNodTandvard.Checked, chkTSLIES.Checked, decimal.Parse(txtBruttoKostnad.Text), decimal.Parse(txtErlagdPatientAvgift.Text),
                decimal.Parse(txtnettoKrav.Text), txtAntalBesök.Text, txtBetaldaBesök.Text, txtFrikortsBesök.Text, txtUteblivande.Text,
                chkFörhandsprövningGjord.Checked, DateTime.Parse(txtInkommandeDatum.Text), DateTime.Parse(txtUtanordnadDatum.Text), DdlKlinik.SelectedValue,
                txtLöpNr.Text, decimal.Parse(txtJusteratKrav.Text), txtKommentar.Text, chkMakulerad.Checked, chkGodkänd.Checked, chkTandvårdsIntyg.Checked,
                chkFHPFinns.Checked, chkPatientlista.Checked, short.Parse(DdlGrupp.SelectedItem.Text), DateTime.Parse(txtFTVmånad.Text), txtVårdTOM.Text,
                txtTypAvVård.Text, chkSärskildÅtgärd.Checked, (int)this.ViewState["ID"]);

                ScriptManager.RegisterStartupScript(btnSpara, btnSpara.GetType(), "alertscript", "alert(" + '"' + "Du har nu sparat din redigering!" + '"' + ")", true);

                txtSokRakning.Text = "";
                txtPersonNr.Text = "";
                txtFörNamn.Text = "";
                txtEfterNamn.Text = "";
                txtBruttoKostnad.Text = "";
                txtErlagdPatientAvgift.Text = "";
                txtnettoKrav.Text = "";
                txtAntalBesök.Text = "";
                txtBetaldaBesök.Text = "";
                txtFrikortsBesök.Text = "";
                txtUteblivande.Text = "";
                txtInkommandeDatum.Text = "";
                txtUtanordnadDatum.Text = "";
                txtLöpNr.Text = "";
                txtJusteratKrav.Text = "";
                txtFTVmånad.Text = "";
                txtVårdTOM.Text = "";
                txtTypAvVård.Text = "";
                txtKommentar.Text = "";
                txtSokRakning.Focus();

                chkNodTandvard.Checked = false;
                chkTSLIES.Checked = false;
                chkFörhandsprövningGjord.Checked = false;
                chkMakulerad.Checked = false;
                chkGodkänd.Checked = false;
                chkTandvårdsIntyg.Checked = false;
                chkFHPFinns.Checked = false;
                chkPatientlista.Checked = false;
                chkSärskildÅtgärd.Checked = false;

            }
            catch
            {

                ScriptManager.RegisterStartupScript(btnSpara, btnSpara.GetType(), "alertscript", "alert(" + '"' + "Det gick inte att spara, var snäll försök igen.." + '"' + ")", true);
            }

        }
    }
}